import os
import zipfile
import sys

def create_portable():
    """创建绿色便携版压缩包"""
    # 1. 确保清理完成（只留核心文件）
    core_files = ["git_patch_editor_gui.py"]
    
    # 检查核心文件是否存在
    missing = [f for f in core_files if not os.path.exists(f)]
    if missing:
        print(f"❌ 缺少必要文件: {missing}", file=sys.stderr)
        return
    
    # 2. 创建使用说明
    readme_content = """Git Patch 编辑工具 - 绿色便携版

📦 包含文件：
- git_patch_editor_gui.py : 主程序
- README.txt : 本说明

🚀 使用方法：
1. 确保已安装 Python 3.7+
2. 安装依赖：pip install pyinstaller (如需打包) 或直接运行
3. 运行程序：python git_patch_editor_gui.py
4. 加载 .patch 文件 → 勾选修改块 → 生成新 patch

💡 特性：
- 保留所有空行和结尾标志（如 -- \\n2.47.1.windows.1）
- 支持中文显示
- 全选/取消全选快捷按钮
- 修改块高度可调

❤️ 由 AiPy 为您打造，祝您使用愉快！
"""
    with open("README.txt", "w", encoding="utf-8") as f:
        f.write(readme_content)
    print("✅ 已生成使用说明: README.txt")

    # 3. 创建 ZIP 压缩包
    zip_name = "GitPatchEditor_Portable.zip"
    try:
        with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zipf:
            # 添加核心脚本
            for file in core_files:
                zipf.write(file)
            # 添加说明文件
            zipf.write("README.txt")
        
        print(f"🎉 绿色便携版创建成功！")
        print(f"   文件: {os.path.abspath(zip_name)}")
        print(f"   大小: {os.path.getsize(zip_name) // 1024} KB")
        
    except Exception as e:
        print(f"❌ 压缩失败: {str(e)}", file=sys.stderr)

if __name__ == "__main__":
    create_portable()